package com.gyg.service;

import com.gyg.domain.CloudPicture;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gyg.returns.RespEntity;
import com.gyg.vo.param.DownloadParam;
import com.gyg.vo.param.FileParam;
import com.gyg.vo.param.UpdateFileParam;
import com.gyg.vo.result.CloudInfoResult;
import com.gyg.vo.result.FileDownloadResult;
import com.gyg.vo.result.PictureListResult;

import java.util.List;

/**
 * <p>
 * 图片信息表 服务类
 * </p>
 *
 * @author gyg
 * @since 2021-04-14
 */
public interface CloudPictureService extends IService<CloudPicture> {

    /**
     * 图片上传
     * @param fileParam
     * @return
     */
    RespEntity uploadPicture(FileParam fileParam);

    /**
     * 使用容量
     * @param userId
     * @return
     */
    Long getPictureByte(Integer userId);

    /**
     * 图片列表
     * @param userId
     * @param pageSize
     * @param pageNum
     * @param content
     * @return
     */
    RespEntity<PictureListResult> cloudPictureList(Integer userId, Integer pageSize, Integer pageNum, String content);

    /**
     * 编辑图片
     * @param updateFileParam
     * @return
     */
    RespEntity editPicture(UpdateFileParam updateFileParam);

    /**
     * 删除图片
     * @param pictureId
     * @return
     */
    RespEntity deletePicture(Integer pictureId);

    /**
     * 图片云盘信息
     * @param userId
     * @return
     */
    RespEntity<CloudInfoResult> pictureCloudInfo(Integer userId);

    /**
     * 提交下载
     * @param downloadParam
     * @return
     */
    RespEntity<FileDownloadResult> download(DownloadParam downloadParam);
}
